Add private api for setting cursor theme
authorMatthias Clasen <mclasen@redhat.com>
Fri, 17 Nov 2017 22:42:12 +0000 (17:42 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 17 Nov 2017 22:42:12 +0000 (17:42 -0500)
This is implemented in multiple gdk backends,
and we can avoid and ugly ifdef cascade in gtk
by adding a vfunc for this.

gdk/gdk-private.h
gdk/gdkdisplay.c
gdk/gdkdisplayprivate.h
gdk/wayland/gdkdisplay-wayland.c
gdk/win32/gdkdisplay-win32.c
gdk/x11/gdkdisplay-x11.c

index 179da76163b8d6051da43d6360455d778b00bedb..0ebbc9d563d28b029611fc1fa340e9617413c41b 100644 (file)
@@ -45,5 +45,8 @@ void gdk_display_set_double_click_time     (GdkDisplay   *display,
                                             guint         msec);
 void gdk_display_set_double_click_distance (GdkDisplay   *display,
                                             guint         distance);
+void gdk_display_set_cursor_theme          (GdkDisplay   *display,
+                                            const char   *theme,
+                                            int           size);
 
 #endif /* __GDK__PRIVATE_H__ */
index 5232fe335aec5d91c52c6314da58632ed9cfe551..39e9884f537b95ec65225382f7568c2124fe4290 100644 (file)
@@ -2038,3 +2038,12 @@ gdk_display_set_double_click_distance (GdkDisplay *display,
 {
   display->double_click_distance = distance;
 }
+
+void
+gdk_display_set_cursor_theme (GdkDisplay *display,
+                              const char *name,
+                              int         size)
+{
+  if (GDK_DISPLAY_GET_CLASS (display)->set_cursor_theme)
+    GDK_DISPLAY_GET_CLASS (display)->set_cursor_theme (display, name, size);
+}
index d35f4849f7ca493affeba2c97b758f87b062755f..9c5dac24ede429193b959cd469daf26a80ffa897 100644 (file)
@@ -220,6 +220,9 @@ struct _GdkDisplayClass
                                                         const char     *name,
                                                         GValue         *value);
   guint32                (*get_last_seen_time)         (GdkDisplay     *display);
+  void                   (*set_cursor_theme)           (GdkDisplay     *display,
+                                                        const char     *name,
+                                                        int             size);
 
   /* Signals */
   void                   (*opened)                     (GdkDisplay     *display);
index c6063ea3f1e0ecc7fee0e67418ce1373901cd963..950b0d57961a2f333f798610f0dc1a91ebcf75d6 100644 (file)
@@ -1041,6 +1041,7 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass *class)
   display_class->get_monitor = gdk_wayland_display_get_monitor;
   display_class->get_monitor_at_window = gdk_wayland_display_get_monitor_at_window;
   display_class->get_setting = gdk_wayland_display_get_setting;
+  display_class->set_cursor_theme = gdk_wayland_display_set_cursor_theme;
 }
 
 static void
index 4643f1698b755e632357463464a379afa6568a04..b13e6b712356e0ea83d8ef9a1f442de97954f30c 100644 (file)
@@ -1273,6 +1273,7 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
 
   display_class->get_setting = gdk_win32_display_get_setting;
   display_class->get_last_seen_time = gdk_win32_display_get_last_seen_time;
+  display_class->set_cursor_theme = gdk_win32_display_set_cursor_theme;
 
   _gdk_win32_windowing_init ();
 }
index 4e022c635bae6cacfd8b02934dd614ab3510ba2b..245df4a3105cb14acde5e71472f4ae5233ac07e5 100644 (file)
@@ -3222,6 +3222,7 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
   display_class->get_primary_monitor = gdk_x11_display_get_primary_monitor;
   display_class->get_setting = gdk_x11_display_get_setting;
   display_class->get_last_seen_time = gdk_x11_display_get_last_seen_time;
+  display_class->set_cursor_theme = gdk_x11_display_set_cursor_theme;
 
   _gdk_x11_windowing_init ();
 }